#include "app.h"

#include <stdio.h>
#include <string.h>

#include "os.h"

void delay(uint32_t cnt)
{
    while(--cnt)
    {
        __nop();
    }
}

// 任务1和任务2的任务结构，以及用于堆栈空间
TASK_T task1;
tTaskStack task1Env[1024];
TASK_T task2;
tTaskStack task2Env[1024];
TASK_T task3;
tTaskStack task3Env[1024];
TASK_T task4;
tTaskStack task4Env[1024];


char flag1;
void task1_entry(void *param)
{
    for(;;)
    {
        flag1 = 1;
        vTaskDelay(1);
        flag1 = 0;
        vTaskDelay(1);
    }
}

char flag2;
void task2_entry(void *param)
{
    for(;;)
    {   
        flag2 = 1;
        vTaskDelay(1);
        flag2 = 0;
        vTaskDelay(1);
    }
}

char flag3;
void task3_entry(void *param)
{
    for(;;)
    {
        flag3 = 1;
        vTaskDelay(1);
        flag3 = 0;
        vTaskDelay(1);
    }
}

char flag4;
void task4_entry(void *param)
{

    for(;;)
    {
        flag4 = 1;
        vTaskDelay(1);
        flag4 = 0;
        vTaskDelay(1);
    }
}



/*****************************************************************************
 * @function        app_init
 * @brief 			应用程序初始化函数. 用于创建任务、事件、消息队列等等操作。
 * 
 * @return 			None.	
 *
 * ***************************************************************************/
void app_init(void)
{
    /* 初始化任务*/
    vTaskCreate(&task1, task1_entry, (void *)0x11111111, 0, task1Env, sizeof(task1Env));
    vTaskCreate(&task2, task2_entry, (void *)0x11111111, 2, task2Env, sizeof(task1Env));
    vTaskCreate(&task3, task3_entry, (void *)0x11111111, 1, task3Env, sizeof(task1Env));
    vTaskCreate(&task4, task4_entry, (void *)0x11111111, 1, task4Env, sizeof(task1Env));
}



